——以HP ZHAN99 Workstation G1 为例
Foundation 基础信息
System Version 系统版本
macOS Catalina 10.15.4 (19E266)
HardWare 配置
- Intel Core I7-8750h 6C12T
- Crucial DDR4 2666MHz 8G*2 (自己加了一条
- UHD630
- Realtek Alc295
- BCM94360CS2 NGFF (加转接卡换上去的)
Steps 步骤
CFG Lock
之前一直懒得管,但是OC的话,强烈建议解锁,于是当然是去解锁啊,没想到遇到了不少坑2333
首先去Google随便找到了一个觉得讲得不错的,传送门
没想到刚开头就翻车了2333
问题1 如何获取BIOS?
首先的想法那肯定是从官网下载啊——没错我下载下来了,解压了sp100757.exe之后,最后得到了0847B.fd
拿到fd肯定是很开心啊,那不是继续走就完事了吗
NoNoNo,UEFITool直接表示:No UEFI Volume Found
而且看了一下,这个fd文件居然有三十多M大,感觉就不大靠谱,里面应该有一部分没用的东西导致了上述问题
那么换个思路:新下载的不行,那为什么不直接提取本地的?
ODK,直接搜一下,通用备份工具 Universal BIOS Backup Tool 2.0.0
然后无法识别BIOS类型(BIOS类型是Insyde,请记住这个名字,这个BIOS出了名的坑爹2333)
无法识别没关系啊,可以手动指定大小然后直接去读取不是吗?虽然我们不知道具体的大小,但是可以从4M开始往上测试能不能读呗
于是试了4M 8M,都可以拿到ROM,但是16M就卡死了。我之前的感觉是bios应该是16M的,但是既然工具读16M挂了,是不是说明bios并不是16M的?
结果当我用UEFITool去打开这两个ROM然后搜索的时候,发现没有CFG Lock???那肯定是我们提取的BIOS有问题。那只能继续爬帖了
终于,翻了不少之后看到了一个很有用的帖子 传送门
使用这里面提到的工具 Intel CSME System Tools 来提取BIOS即可
注意,请使用正确的版本,只有对应的chipset才可以使用工具来提取
比如我的是300系的,所以使用的是 v12 r20版本
OK,拿到了BIOS之后直接丢进UEFITool,确实这次能找到CFG Lock了,按照标准步骤,把对应的PE32 image拿出来,再转换成“human language”
此处有Warning:最开始我用的是这个 : ifrextractor_1.0.2_mac ,然后报错了,我很郁闷,想着试试老板本原版
于是换用了 ifrextract_v0.3.6.osx ,然后就好了,我也是很无语啊
下一步就是去修改数据了,你以为这就完事了?不不不
问题2 如何修改BIOS数值
根据第一篇帖子的信息,我们用modGRUBShell.efi进去修改即可,但是没想到啊,因为BIOS是Insyde(系微),所以如果我们用上面这个工具修改,会提示Can’t set variable using efi。而且你会发现,set_var的时候拿到的数据不对,BIOS里面应该显示的是0x01才对,可是我们看到的却是0x00
那就继续爬帖呗,终于找到了一个帖子提到了这个 传送门
于是改为使用ru.efi(感谢湾湾大神制作的工具)
但是不要照抄哈,下面是我的操作过程:
- 进入后 ‘alt’ + ’=‘ 切换进 ACPI Variable
- 用pageup/pagedown/上下方向键找到 CPUSetup
- 回车进入然后用上下左右方向键找到对应的地址(我是0x3e,那么就是纵坐标03,横坐标0e的位置)
- 一看,确实是0x01,那么回车,输入0 就可以看到它变成了0
- 使用’crtl’ + ‘w’ 来保存 保存的时候屏幕上会直接显示update written 的,这说明已经写入了
- 使用’alt’ + ‘q’ 来退出,然后即可回到引导进入系统了,CFG已经解锁
进入系统之后使用hackintool -> 工具 -> intel(就是下方最左边的icon) 读取之后 command + f 搜索 cfg 就可以看到状态了
注意 如果显示还是锁着的,请完全关机,然后再开机进系统看看
至此,最麻烦的CFG Lock 部分就完工了
Config.plist
此处相对而言较为简单,主要参照黑果小兵
这里主要列举几个我遇到的问题(大多还是挺好解决的)
no vault provided!
这个原因很简单,开启了Misc-Security-Vault却没有放 vault.plist和 vault.sig,这个就暂时先把vault改为optional吧
LAPIC Error
搜到了各种说明
首先是vit9966说的吧,我用了debug=0x100
却没有加上lapic_dont_panic=1
后来发现并不是这个的原因,而是我的change EC0 to EC patch有问题
最后发现:ACPI-Patch里面 count这个属性虽然在example里面用的是1 ,但是应该改成0才可以
Layout-id 失效
发现是自己犯了比较傻的问题
首先,不小心大写了,然后refer to opencore vanilla的建议,我将其改成了 alc-layout-id
并且要注意,id的类型不是number而是data,所以可以用这个trick在terminal里面得到他的data值:
printf "%x\n" id
把id换成你自己的数字
ApplePS2SmartTouchPad.kext 未被加载
这个涉及opencore的config要求
在Kernel-Add里面添加kext的时候,要注意,如果kext里面有PlugIns,要把plugins也单独写进去
比如ApplePS2SmartTouchPad.kext就需要另外加上 ApplePS2SmartTouchPad.kext/Contents/PlugIns/ApplePS2Controller.kext 和 ApplePS2SmartTouchPad.kext/Contents/PlugIns/ApplePS2Keyboard.kext
效果
经过验证,和Clover版本无差别
另外,OC开机更加原生,体验更好
以下feature已check
- CPU自动变频+睿频
- 可调节显示器亮度,且最低亮度不会全黑
- 声卡正常
- Wi-Fi&Airdrop&AirPlay
- 蓝牙&handoff
- 原生电池控制
- USB(此项自己定制)
- 有线网卡驱动
- 摄像头驱动
- GPS
- 睡眠+唤醒
- sidecar可用
- 支持信息、FaceTime、iCloud、App Store (注意此项需要自己去按照教程定制MLB ROM UUID等)
附录
我用到的主要工具
- Intel CSME System Tools v12 r20
- UEFITool
- ifrextract
- RU.efi
- ProperTree
已打包:传送门
主要帖子汇总
关于Insyde H2O BIOS 更改一些隐藏预设值的操作
解锁MSR 0xE2、BIOS Lock等隐藏选项新姿势,还黑果原生体验(附刷AMI BIOS教程)
Clover转OpenCore,卡在CFG Lock上,偏移已确定modGRUBShell修改无效
Opencore Vanilla General Troubleshooting